package com.fh.shop.api.util;

import com.fh.shop.api.config.SystemConfig;
import org.springframework.beans.factory.annotation.Autowired;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class RedisPool {


    private RedisPool() {

    }
    private static JedisPool jedisPool;
    private static void initPool() {
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        // 连接池中总连接的数量 1000
        jedisPoolConfig.setMaxTotal(1000);
        // 空闲时，最大连接的数量 100
        jedisPoolConfig.setMaxIdle(100);
        // 空闲时，最小连接的数量 100
        jedisPoolConfig.setMinIdle(100);
        // 当获取连接的时候，验证连接是否可用
        jedisPoolConfig.setTestOnBorrow(true);
        // 当归还连接的时候，验证连接是否可用
        jedisPoolConfig.setTestOnReturn(true);
        // 创建连接池
        jedisPool = new JedisPool(jedisPoolConfig, "192.168.58.151", 7020);
    }

    static {
        // 放到静态块中的方法，只会被执行一次；
        // 在类加载的时候
        initPool();
    }

    // 被外部调用的方法
    // 获取连接池中的连接
    public static Jedis getConnection() {
        return jedisPool.getResource();
    }
}
